专利摘要:
This document discloses systems and methods of protection against unauthorized modification of memory dumps (106). In one example, a method may include producing a memory dump (106) of a computer device (106) and identifying a current kernel function used to produce the memory dump (106). After determining that the current kernel function is not authorized to produce the memory dump (106), the method may include determining that the memory dump (106) produced has been modified, parsing a call tree to identify a function of the original kernel allowed to produce memory dumps (106) and call the original kernel function to produce a genuine memory dump (106).
公开号:CH717045A2
申请号:CH01632/20
申请日:2020-12-21
公开日:2021-07-15
发明作者:Strogov Vladimir;Beloussov Serguei;Dod Alexey;Protasov Stanislav
申请人:Acronis Int Gmbh;
IPC主号:
专利说明:

TECHNICAL FIELD
[0001] The present disclosure relates to the field of digital forensics and, more specifically, to systems and methods of protection against unauthorized modification of memory dumps.
STATE OF THE ART
[0002] One of the primary methods of digital forensics involves obtaining live system memory dumps that can be used to study digital crimes, including malware attacks, system intrusions, data theft, modifications (e.g. encryption ), etc. In particular, live dumps include information about the processes going on in memory and allow analysis of that information.
[0003] Live dumps are characterized by the fact that they are created on a working system and even after receiving them, the system does not hang - unlike other types of dumps created at the time of the system crash and which store information about the last state of the system immediately before the crash. Live dumps are created using the built-in tools of the operating system, which includes special methods and functions used for these purposes in their functionality.
Despite the positive characteristics of live dumps, malicious programs such as rootkits can replace the information in a memory dump and thus complicate or make the digital investigation process impossible. Rootkits take control of system calls which create live dumps. As a result, the "fake" dumps contain modified data in which traces of intruder activity and malware are completely removed.
There is therefore a need for a system and method that can prevent malicious programs from tampering with memory dumps.
SUMMARY
To overcome these shortcomings, the examples of the disclosure describe methods and systems of protection against unauthorized modification of memory dumps.
In one example, a method may comprise producing a memory dump of a computing device and identifying a current kernel function used to produce the memory dump. After determining that the current kernel function is not authorized to produce the memory dump, the method can determine that the produced memory dump has been modified, parse a call tree to identify an original kernel function authorized to produce the dump memory and call the original kernel function to produce a genuine memory dump.
In some examples, determining that the current kernel function is not authorized to produce the memory dump includes determining that a row, in an addressing table, that points to a kernel function for the memory dump, has been modified.
In some examples, determining that the row has been changed includes determining that an address associated with a system call number in the addressing table a first time does not match an address associated with the system call number a second time.
In some examples, determining that the current kernel function is not authorized to produce the memory dump is based on determining that a current kernel function address is not in a computer device operating system kernel range.
In some examples, analyzing the call tree to identify the function of the original kernel comprises determining an offset indicating the function of the original kernel based on the contents of a row in the call tree.
In some examples, determining that the current kernel function is not authorized to produce the memory dump also includes comparing a kernel image on the computer device disk with a kernel image in the computer device memory, identifying the modified kernel fragments used to produce the memory dump based on the comparison and determine that the modified kernel fragments are caused by malware.
It should be noted that the methods described above can be implemented in a system comprising a hardware processor. Alternatively, the methods can be implemented using computer instructions from a non-transient computer medium.
The simplified summary of the exemplary aspects above serves to allow a basic understanding of the present disclosure. This summary is not an exhaustive summary of all aspects covered and is neither intended to identify key or critical elements of all aspects, nor to outline the scope of some or all aspects of this disclosure. Its sole purpose is to present one or more aspects in simplified form as a prelude to the more detailed description of the disclosure which follows. To complete the foregoing, one or more aspects of the present disclosure includes the features described and exemplified in the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and form part of this specification, illustrate one or more exemplary aspects of the present disclosure and, together with the detailed description, serve to explain the principles and implementations thereof. FIG. 1 is a block diagram showing a system of protection against unauthorized modification of memory dumps. FIG. 2 is a block diagram showing a call tree. FIG. 3 shows a flowchart of a method of protecting against unauthorized modification of memory dumps. FIG. 4 presents an example of a generic computer system on which examples of the present disclosure can be implemented.
DETAILED DESCRIPTION
Exemplary aspects are described herein in the context of computer program system, method and product for protection against unauthorized modification of memory dumps. Those of ordinary skill in the art will realize that the following description is purely illustrative and is not intended to be limiting in any way. Other aspects will immediately reveal themselves to those skilled in the art who will make use of this disclosure. Reference will now be made in detail to the implementations of the exemplary aspects as illustrated in the accompanying drawings. The same reference indicators will be used, as far as possible, in all drawings and in the following description to refer to the same or similar elements.
Generating a memory dump involves taking all the information contained in the random access memory (RAM) and writing it to a storage unit. Developers use memory dumps to collect diagnostic information for troubleshooting following a crash. Using the built-in kernel functions of the operating system, systems and methods described here, involves producing live memory dumps (in particular raw dumps and system dumps) and protecting them from harmful modifications by finding the original kernel function "good" to get the dump, if the original "good" kernel function has been replaced with a "bad" kernel function.
[0018] FIG. 1 is a block diagram showing the memory dump protection system 100 from tampering. The system 100 includes the computer device 102, which may include a personal computer, a server, etc., which includes a central processing unit ("CPU") and a memory that includes software for performing various tasks ( for example, operating system (OS) software, application software, etc.). The data for the computer device 102 can be stored in the memory of the device itself, as well as on other external devices such as the backup server 104, a compact disk, a flash drive, an optical disk and the like.
In the present disclosure, the memory dump 106 from the memory of the computer device 102 is transmitted to the server 104 through the network 108. The network 108 may be the Internet, a mobile telephone network, a data network (for example, a 4G or LTE network), a Bluetooth or any combination of these elements. For example, the server 104 can be part of a cloud computing environment accessible via the Internet, or it can be part of a local area network (LAN) with the computing device 102. The lines connecting the server 104 and the computing device 102 to the network 108 represent communication paths which can include any combination of free space connections (eg for wireless signals) and physical connections (eg fiber optic cables). In some examples, the dump 106 can be transferred to the server 104 as a separate entity, it can be included in the backup archive, it can be stored locally, or it can be transferred to the cloud, etc.
Note that there may be more than one server 104, but FIG. 1 shows just one to avoid further complicating the drawing. For example, server 104 may represent a plurality of servers in a distributed cloud cluster. Server 104 may comprise any number of physical components (as shown in FIG. 4 for example). For example, the server 104 may comprise a number of physical components such as processors, physical block storage devices (e.g., hard disk drives (HDD), solid state drives (SSDs), flash drives, SMR disks, etc. ) or memories (for example, random access memory (RAM)), I / O interface components, etc.
The memory dump 106 can be represented by data of any type, including system data, user data, applications, system files, preferences, documents, media, etc. The computer device 102 can send the memory dump 106 for archiving on the server 104 according to a backup plan indicating the specific data to be included in the memory dump 106 and the data backup frequency.
As described above, although data backup allows for the storage of information on a system (e.g., computer device 102), memory dumps are subject to tampering by intruders. Tampering can result in data theft and unauthorized data modification (for example, encryption, inserting malicious agents into a memory dump, etc.). As a result, the Digital Forensics Agent 110 is configured to manage the collection of data for digital forensics and their subsequent processing. The Digital Forensics Agent 110 can be a standalone program or a part of antivirus software. In some examples, the digital forensics agent 110 is installed on the computing device 102 as a thin client and on a server as a thick client. For the examples of FIG. 1., the digital forensics agent 110 is installed on the computing device 102.
The digital forensics agent 110 comprises two components: the forensics monitoring module 112 and the anti-forensics protection module 114. The forensics monitoring module 112 can be configured to invoke the kernel API to produce a live dump. In some examples, module 112 may invoke the kernel API in response to receiving a request (for example, from a user) or based on monitoring and tracking data in the computing device 102 that should be used in a digital forensics investigation (for example, data to be included in memory dump 106). The Anti-Forensics Protection Module 114 can be a driver configured to prevent the destruction of traces of malware activity. This driver determines whether the data in memory dump 106 has been modified or destroyed by malware and finds and restores the original data intact.
Two approaches are discussed for acquiring the memory dumps. The first through the system service descriptor table (SSDT) and the second through the use of raw dump. The examples presented in this disclosure are associated with the Windows ™ operating system. A skilled in the art, however, would like the techniques to be applied to any operating system.
In the first approach, an internal address table such as the SSDT is considered. The SSDT is a kernel function pointer table used by the Windows ™ operating system for routing system calls. In particular, each line of the SSDT points to a kernel function for a particular system call. In one case, a software application / process on the computing device 102 may invoke a system call using a system call request. In response to the request, the CPU of the computing device 102 switches from user mode to kernel mode and performs a system call addressing function that reads a system call number. The system call number is a unique integer that is assigned to each system call in the operating system. On x86, the system call number is supplied to the kernel through the eax register (for example, the user space enters, in eax, the number corresponding to the desired system call). The addressing function uses the call number as an index of the SSDT. Upon reading the pointer value from the SSDT, the addressing function transfers execution to the kernel function in the kernel associated with the line.
[0026] Since the SSDT contains important memory addresses of the main kernel functions, the SSDT is a common target for hooking by malicious entities such as rootkits. Hooking refers to the alteration of software (e.g. applications, operating systems, etc.) by intercepting function calls, events, messages, etc. For example, a rootkit can replace existing kernel functions with its own address. This way, when an application invokes a system call for a specific kernel function, the rootkit code is loaded instead.
A more detailed example is provided as such. The pointer to the SSDT structure can be KeServiceDescriptorTable (depending on the operating system of the computing device 102). On Windows, using WinDbg, the command „dd dwo (KeServiceDescriptorTable) L100“ will list the first 100 DWORDs of the SSDT structure. DWORD stands for double word and is one of the five main data types managed by the Registry Editor. A DWORD value can contain up to 32 bits, which are displayed by the register in decimal or hexadecimal values. For simplicity, only a few selected addresses will be shown in the examples below. If a rootkit is not active (for example the first time), the output can be: ... 80501dcc 80607ac88056f074805b3de0 8056f3ca ... can be: ... 80501dcc 80607ac8f7c38486805b3de0 8056f3ca ... The comparison of these two outputs clearly shows that the memory address "8056f074" has been replaced by "f7c38486". The system call number is the same for both addresses (eg 55). Therefore, referring to the system call number, the function of the replaced kernel with „f7c38486“ is called.
Consequently, the anti-forensics protection module 114 of the digital forensics agent 110 checks whether the line in the SSDT that points to the kernel function for generating memory dumps (e.g. NtSystemDebugControl) has been modified.
[0029] Referring to the previous example, NtSystemDebugControl can be associated with the memory address „8056f074“. The memory address "f7c38486" may be for the unknown kernel function "MalwarePatch". The anti-forensics protection module 114 identifies the unknown kernel function „MalwarePatch“ and verifies the authenticity of the kernel function by determining whether the kernel function is in the range of the NT operating system kernel. To determine if the kernel function is in the range of the NT OS kernel, you need to check the starting and ending address of the NT OS kernel (or, in some examples, a plurality of ranges) and check if the address kernel function is in one of these ranges.
In some examples, the anti-forensics protection module 114 can validate whether the SSDT line corresponding to NtSystemDebugControl actually points to an authentic kernel code, instead of some „MalwarePatch“ as described above. If a change in the SSDT is detected and the kernel function is considered to be inauthentic (i.e. not in the range of the NT OS kernel), the offset (i.e., the service call number where the memory contents in the offset points to actual kernel function) is used by the anti-forensics protection module 114 to find the actual NtSystemDebugControl kernel function. The anti-forensics protection module 114 specifically finds the actual kernel function by building a call tree of a given depth and going through the tree to find the original kernel function (discussed later in FIG. 2).
The second approach for acquiring memory dumps involves acquiring raw dumps. In this approach, the forensics monitoring module 112 obtains both the physical memory ranges and the data content in the memory dump. The forensics monitoring module 112 can obtain ranges using an interface such as „MmGetPhysicalMemoryRanges“ in the Windows NT operating system kernel. Similarly to the first approach, the anti-forensics protection module 114 accesses the operating system kernel of the computing device 102, finds the current kernel function (i.e. the manufacturer of the memory dump), and determines whether the kernel function is the function of the original kernel (i.e. the genuine kernel function). In some examples, the anti-forensics protection module 114 can compare a kernel image on disk and a kernel image in memory to detect fragments of the malware-modified kernel to produce forged dumps. For example, the anti-forensics protection module 114 compares MmGetPhysicalMemoryRanges in memory with MmGetPhysicalMemoryRanges in ntoskrnl.exe (or another main kernel module of the NT operating system).
[0032] If no tampering is detected, the kernel function is invoked. Otherwise, the anti-forensics protection module 114 obtains, using dynamic disassembly, a call tree and finds a piece of memory corresponding to the original "good" kernel function. Dynamic disassembly refers to the monitoring, by an external tool such as a debugger, of a file while it is running. The original kernel function is called to produce a genuine memory dump that is not tampered with. The kernel function address is the starting address and the top of the call tree.
[0033] Another patch technique for blocking malware is „splicing“, which can also be applied to NtSystemDebugControl by malicious software. In splicing, the malicious software corrects the existing NtSystemDebugControl code without changing the pointer in the SSDT. The anti-forensics protection module 114 can detect the attack in the same way described above for the protection of the MmGetPhysicalMemoryRanges call sequence - by comparing the corresponding fragments of NtSystemDebugControl code in memory and in the kernel image retriever from disk. For example, the anti-forensics protection module 114 can find the location of NtSystemDebugControl in memory using the kernel debugger command „dd nt! ZwSystemDebugControl “and compare the byte ranges, taking into account that some instructions contain variable offsets and adjustments. Note that ZwSystemDebugControl is the exported kernel name for the line in NtSystemDebugControl.
[0034] FIG. 2 is a block diagram showing the call tree 200. The anti-forensics protection module 114 analyzes a call tree to identify an original kernel function authorized to produce memory dumps. Consider an example of traversing the 200 call tree to find and use the original kernel functions on the live dump capture path. In this example, assume that NtSystemDebugControl is hooked via SSDT and the call to DbgkCaptureLiveDump in the original NtSystemDebugControl is replaced with a call to HookedDbgkCaptureLiveDump.
[0035] Starting with the SSDT, the anti-forensics protection module 114 can confirm that a memory dump has been produced by a hooked kernel function following the path of the call tree 200 indicated by the dotted lines at the time it is The memory dump was produced. For example, the call tree path 200 begins with HookedNtSystemDebugControl, which includes a call to NtSystemDebugControl. Since the original NtSystemDebugControl is hooked, instead of calling DbgkCaptureLiveDump, NtSystemDebugControl calls HookedDbgkCaptureLiveDump. HookedDbggkCaptureLiveDump calls the original DbgkCaptureLiveDump to produce a memory dump. Later, using the ForgedLiveDumpPostProcess function, HookedDbgkCaptureLiveDump modifies the memory dump. With HookedDbgkCaptureLiveDump completing the tamper, NtSystemDebugControl (original) completes its execution and HookedNtSystemDebugControl calls ForgedDumpPostProcess, which is another malicious function that can further tamper / corrupt the captured dump. As you can see, the original kernel function is DbgkCaptureLiveDump and the current kernel function, which is not allowed to produce memory dumps, is HookedDbgkCaptureLiveDump.
More specifically, the anti-forensics protection module 114 can traverse the call chain from the SSDT to the original internal calls. The anti-forensics protection module 114 can detect, by comparing the memory and disk, the attachment points installed. For example, according to an in-memory kernel image, NtSystemDebugControl calls HookedDbgkCaptureLiveDump instead of DbgkCaptureLiveDump. In a disk kernel image, NtSystemDebugControl can instead call DbgkCaptureLiveDump, which is the correct kernel function to call. The anti-forensics protection module 114 can then reconstruct the call paths by restoring the original calls from the disk image. After a restore of the 200 call tree path, the pointer to HookedNtSystemDebugControl in the SSDT (see first star) will be replaced with NtSystemDebugControl and the call to HookedDbgkCaptureLiveDump (see second star) will be replaced with DbgkCaptureLiveDump. In this way, HookedNtSystemDebugControl is skipped and HookedDbgkCaptureLiveDump is not called. Finally, the anti-forensics protection module 114 can use the functions of the original kernel (following the solid arrows in the call tree 200) to facilitate the production of a genuine memory dump.
[0037] FIG. 3 shows a flowchart of an exemplary method 300 of protecting against unauthorized modification of the memory dump. AI 302, the forensics monitoring module 112 produces a memory dump of a computing device (e.g., computing device 102). AI 304, the anti-forensics protection module 114 identifies a current kernel function that is used to produce the memory dump. AI 306, the anti-forensics protection module 114 determines whether the current kernel function is authorized to produce the memory dump. After determining that the current kernel function is authorized, method 300 ends. After determining that the current kernel function is not authorized, method 300 moves to 308, where the anti-forensics protection module 114 determines that the memory dump has changed. AI 310, the anti-forensics protection module 114 analyzes a call tree to identify an original kernel function authorized to produce memory dumps. AI 312, forensics monitoring module 112 calls the original kernel function to produce a genuine memory dump. At AI 314, the forensics monitoring module 112 receives the genuine memory dump.
[0038] FIG. 4 is a block diagram showing a computer system 20 on which systems and methods of protection against unauthorized modification of memory dumps can be implemented according to an exemplary aspect. The computer system 20 can be in the form of multiple computing devices or in the form of a single computing device, for example a desktop computer, notebook, laptop, mobile computing device, smartphone, tablet, server, computer central, an integrated device and other forms of computing devices.
As shown, the computer system 20 includes a central processing unit (CPU) 21, a system memory 22 and a system bus 23 which connects the various components of the system, including the memory associated with the processing unit central 21. The system bus 23 can comprise a bus memory or a bus memory controller, a peripheral bus and a local bus capable of interacting with any other bus architecture. Bus examples may include PCI, ISA, PCI-Express, HyperTransport ™, InfiniBand ™, Serial ATA, I <2> C, and other suitable interconnects. The central processing unit 21 (also called processor) can comprise a single or a series of processors with one or more cores. Processor 21 may execute one or more executable computer codes that implement the techniques of the present disclosure. For example, the processor 21 can execute any of the commands / steps of FIGS. 1-2. The system memory 22 can be any memory for storing the data used herein and / or computer programs executable by the processor 21. The system memory 22 can include a volatile memory such as a random access memory (RAM) 25 and a non-volatile memory. volatile such as read-only memory (ROM) 24, flash memory, etc. or a combination of these. The basic input / output system (BIOS) 26 can store basic procedures for transferring information between elements of the computer system 20, such as those at the time of loading the operating system with the use of ROM 24.
The computer system 20 may comprise one or more storage devices such as one or more removable storage devices 27, one or more non-removable storage devices 28, or a combination thereof. One or more removable storage devices 27 and non-removable storage devices 28 are connected to the system bus 23 via a storage interface 32. In one example, storage devices and corresponding computer storage media are power-independent modules for storage of computer system instructions, data structures, program modules and other data 20. System memory 22, removable storage devices 27, and non-removable storage devices 28 can use a variety of computer storage media. Examples of computer storage media include onboard memory such as cache, SRAM, DRAM, zero capacitor RAM, dual transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technologies such as solid state drives (SSDs) or flash drives; storage on magnetic cassettes, magnetic tapes and magnetic disks such as, for example, hard disk drives or floppy disks; optical storage such as, for example, in compact disks (CD-ROMs) or versatile digital discs (DVDs); and any other medium which can be used to store the desired data and which can be accessed by the computer system 20.
The system memory 22, the removable storage devices 27 and the non-removable storage devices 28 of the computer system 20 can be used to store an operating system 35, additional program applications 37, other program modules 38 and data program 39. The computer system 20 may include a peripheral interface 46 for communicating data from input devices 40, such as keyboard, mouse, stylus, game controller, voice command device, touch device or other peripheral device , as a printer or scanner through one or more I / O ports, such as a serial port, parallel port, universal serial bus (USB), or other peripheral interface. A display device 47, such as one or more integrated monitors, projectors or displays, may also be connected to the system bus 23 through an output interface 48, such as a video adapter. In addition to the display devices 47, the computer system 20 can be equipped with other peripheral output devices (not shown), such as speakers and other audiovisual devices.
The computer system 20 may operate in a network environment using a network connection to one or more remote computers 49. The remote computer (s) 49 may consist of local workstations or servers comprising most or all the elements mentioned above in the description of the nature of a computer system 20. Other devices may also be present in the computer network, such as, but not limited to, routers, network stations, peer devices or other network nodes. The computer system 20 may comprise one or more network interfaces 51 or network adapters for communicating with remote computers 49 through one or more networks, such as a local computer network (LAN) 50, a wide-range computer network (WAN), an intranet and the Internet. Examples of network interface 51 may include an Ethernet interface, a Frame Relay interface, a SONET interface, and wireless interfaces.
Aspects of the present disclosure may be a system, method and / or product of a computer program. The computer program product may include computer storage medium (or media) with instructions for computer programs for a processor to perform aspects of this disclosure.
The computer storage medium may be a tangible device capable of storing and storing the program code in the form of instructions or data structures accessible by a processor of a computer device, such as the computer system 20. The storage medium computer may be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any appropriate combination of these. By way of example, this computer storage medium may comprise a random access memory (RAM), a read-only memory (ROM), an EEPROM, a read-only memory of a portable compact disc (CD-ROM), a versatile digital disk (DVD), a flash memory, a hard disk, a portable disk, a memory stick, a floppy disk, or even a mechanically encoded device such as punch cards or structures embossed in a groove with recorded instructions. As used herein, a computer storage medium is not intended to be transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or transmission media, or electrical signals transmitted through a wire.
The computer program instructions described herein can be downloaded to the respective computer devices from a computer storage medium or to an external computer or external storage device via a network, e.g. the Internet, a local network, a network wide range and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, computer gateways and / or edge servers. A network interface of each computer device receives computer program instructions from the network and forwards computer program instructions for storage on a computer storage medium within the respective computer device.
Computer program instructions for performing the operations of the present disclosure can be assembly instructions, instruction sets (ISA), machine instructions, machine dependent instructions, microcodes, firmware instructions, status setting data, or source codes or object codes written in any combination of one or more programming languages, including an object-oriented programming language and conventional procedural programming languages. The instructions of computer programs can be executed entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a LAN or WAN, or the connection can be made to an external computer (for example, through the Internet). In some embodiments, electronic circuits that include, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) can execute the instructions of computer programs using the status information of the instructions. computer programs to customize electronic circuits, in order to carry out aspects of this disclosure.
In various respects, the systems and methods described in the present disclosure can be treated in terms of modules. The term "module" used here refers to an actual device, component or arrangement of components, implemented via hardware, such as via an application specific integrated circuit (ASIC) or FPGA, or as a combination of hardware and software, such as through a microprocessor system and a set of instructions to implement the functionality of the module, which (while running) transforms the microprocessor system into a special device. A module can also be implemented as a combination of the two, with some functions facilitated only by hardware and other functions facilitated by a combination of hardware and software. In some implementations, at least part, and in some cases all, of a module can run on the processor of a computer system. Accordingly, each module can be made in a variety of suitable configurations and need not be limited to a particular implementation exemplified herein.
For the sake of clarity, not all routine features of the aspects are reported here. It would be desirable that in the development of any actual implementation of this disclosure numerous implementation-specific decisions were made in order to achieve the specific goals of the developer, and these specific goals will vary between different implementations and different developers. It is understood that such a development effort could be complex and time-consuming, but it would still be an easy feat for those with ordinary skill in the art who take advantage of this disclosure.
Furthermore, it is understood that the phraseology or terminology used herein is for the purpose of description and not of restriction, so that the terminology or phraseology of this specification is to be interpreted by those skilled in the art in the light of the teachings and of the guidelines presented here, in combination with the knowledge of those proficient in the relevant art or arts. Furthermore, no term in the specification or claims shall be given an uncommon or special meaning, unless it is explicitly stated as such.
The various aspects illustrated herein include known present and future equivalents of the known modules referred to by way of illustration. Further, while the aspects and applications have been shown and described, it is evident to those skilled in the art and availing themselves of the present disclosure that many more modifications than those mentioned above are possible without departing from the concepts of the invention disclosed herein.
权利要求:
Claims (12)
[1]
1. A method of protection against unauthorized modification of memory dumps, the method includes:produce a memory dump of a computing device;identify a current kernel function used to produce the memory dump;after determining that the current kernel function is not allowed to produce the memory dump:determine that the memory dump produced has been modified;parse a call tree to identify an original kernel function authorized to produce memory dumps; Andcall the original kernel function to produce a genuine memory dump.
[2]
The method according to claim 1, wherein determining that the current kernel function is not authorized to produce the memory dump comprises determining that a row, in an addressing table that points to a kernel function for memory dumps , has been modified.
[3]
The method according to claim 2, wherein determining that the row has been modified comprises determining that an address associated with a system call number in the addressing table a first time does not match an address associated with the system call number a second time.
[4]
The method according to claims 1 to 3, wherein determining that the current kernel function is not authorized to produce the memory dump is based on determining that an address of the current kernel function is not in a kernel range of the operating system of the computer device.
[5]
The method according to any one of claims 1 to 4 wherein analyzing the call tree to identify the function of the original kernel comprises determining an offset indicating the function of the original kernel based on the contents of a row in the call tree .
[6]
The method according to any one of claims 1 to 5 wherein determining that the current kernel function is not authorized to produce the memory dump further comprises:compare a kernel image on the computer device disk with a kernel image in the computer device memory;identify modified kernel fragments used to produce the memory dump based on the comparison; Anddetermine that the modified kernel fragments are caused by malware.
[7]
7. A system of protection against unauthorized modification of the memory dump, the system includes:a hardware processor configured to:produce a memory dump of a computing device;identify a current kernel function used to produce the memory dump;after determining that the current kernel function is not allowed to produce the memory dump:determine that the memory dump produced has been modified;parse a call tree to identify an original kernel function authorized to produce memory dumps; Andcall the original kernel function to produce a genuine memory dump.
[8]
The system according to claim 7, wherein the hardware processor is configured to determine that the current kernel function is not authorized to produce the memory dump by establishing that a row, in an address table pointing to a kernel function for memory dumps, it has been changed.
[9]
The system according to claim 8, wherein the hardware processor is configured to determine that the row has been modified by establishing that an address associated with a system call number in the addressing table a first time does not match an address associated with the system call number a second time.
[10]
The system according to any one of claims 7 to 9, wherein the hardware processor is configured to determine that the current kernel function is not allowed to produce the memory dump based on determining that a current kernel function address it is not in a range of the operating system kernel of the computing device.
[11]
The system according to any one of claims 7 to 10, wherein the hardware processor is configured to parse the call tree to identify the function of the original kernel by establishing an offset indicating the function of the original kernel based on the contents of a row in the call tree.
[12]
The system according to any one of claims 7 to 11, wherein the hardware processor is configured to determine that the current kernel function is not authorized to produce the memory dump:comparing a kernel image on the computer device disk with a kernel image in the computer device memory;identifying modified kernel fragments used to produce the memory dump based on the comparison; Andstating that the modified kernel fragments are caused by malware.
类似技术:
公开号 | 公开日 | 专利标题
US9965270B2|2018-05-08|Updating computer firmware
US11256818B2|2022-02-22|System and method for enabling and verifying the trustworthiness of a hardware system
US7624283B2|2009-11-24|Protocol for trusted platform module recovery through context checkpointing
JP5932837B2|2016-06-08|Method and system for updating and authenticating code, method and system for testing program integrity
EP3084671B1|2019-09-18|Automatic strong identity generation for cluster nodes
US9384364B1|2016-07-05|System and method of controlling access of a native image of a machine code to operating system resources
US20130111018A1|2013-05-02|Passive monitoring of virtual systems using agent-less, offline indexing
US11044230B2|2021-06-22|Dynamically opening ports for trusted application processes hosted in containers
EP3474179A1|2019-04-24|Information processing apparatus, method for controlling same, and computer program
US20190238520A1|2019-08-01|User and device onboarding
US9367686B1|2016-06-14|System and method for antivirus checking of native images of software assemblies
US9519780B1|2016-12-13|Systems and methods for identifying malware
US20170310700A1|2017-10-26|System failure event-based approach to addressing security breaches
CH717045A2|2021-07-15|Systems and methods of protection against unauthorized modification of memory dumps.
US11170103B2|2021-11-09|Method of detecting malicious files resisting analysis in an isolated environment
US10339308B1|2019-07-02|Systems and methods for remediating computer reliability issues
US9912528B2|2018-03-06|Security content over a management band
CN111183620A|2020-05-19|Intrusion investigation
US10970415B2|2021-04-06|Sensitive data redaction in memory dump
US9559902B2|2017-01-31|Distributed state model for system configuration synchronization
CH716699A2|2021-04-15|Systems and methods to counter the removal of digital forensic information by malicious software.
US9501649B2|2016-11-22|Systems and methods for determining potential impacts of applications on the security of computing systems
JP7030133B2|2022-03-04|Systems and methods of role-based computer security configuration
US20200342109A1|2020-10-29|Baseboard management controller to convey data
US20210092135A1|2021-03-25|System and method for generating and storing forensics-specific metadata
同族专利:
公开号 | 公开日
US20210216667A1|2021-07-15|
EP3848835A1|2021-07-14|
JP2021111384A|2021-08-02|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US7571482B2|2005-06-28|2009-08-04|Microsoft Corporation|Automated rootkit detector|
US7802300B1|2007-02-06|2010-09-21|Trend Micro Incorporated|Method and apparatus for detecting and removing kernel rootkits|
US8539584B2|2010-08-30|2013-09-17|International Business Machines Corporation|Rootkit monitoring agent built into an operating system kernel|
CN106203121B|2016-07-19|2019-09-06|珠海豹趣科技有限公司|Kernel address prevents malicious modification method, apparatus and terminal|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
US202062959222P| true| 2020-01-10|2020-01-10|
US17/113,195|US20210216667A1|2020-01-10|2020-12-07|Systems and methods for protecting against unauthorized memory dump modification|
[返回顶部]